home *** CD-ROM | disk | FTP | other *** search
- package org.apache.xalan.xslt;
-
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.net.MalformedURLException;
- import org.apache.xalan.xpath.xml.QName;
- import org.apache.xalan.xpath.xml.XMLParserLiaison;
- import org.w3c.dom.Node;
- import org.xml.sax.AttributeList;
- import org.xml.sax.SAXException;
-
- public class ElemElement extends ElemUse {
- public AVT m_name_avt;
- public AVT m_namespace_avt;
- private String m_prefix;
-
- public int getXSLToken() {
- return 46;
- }
-
- public ElemElement(XSLTEngineImpl var1, Stylesheet var2, String var3, AttributeList var4, int var5, int var6) throws SAXException {
- super(var1, var2, var3, var4, var5, var6);
- int var7 = var4.getLength();
-
- for(int var8 = 0; var8 < var7; ++var8) {
- String var9 = var4.getName(var8);
- if (var9.equals("name")) {
- this.m_name_avt = new AVT(var9, var4.getType(var8), var4.getValue(var8), this, super.m_stylesheet, var1);
- } else if (var9.equals("namespace")) {
- this.m_namespace_avt = new AVT(var9, var4.getType(var8), var4.getValue(var8), this, super.m_stylesheet, var1);
- } else if (!((ElemUse)this).processUseAttributeSets(var9, var4, var8) && !((ElemTemplateElement)this).processSpaceAttr(var9, var4, var8) && !((ElemTemplateElement)this).isAttrOK(var9, var4, var8)) {
- var1.error(2, new Object[]{var3, var9});
- }
- }
-
- if (this.m_name_avt == null) {
- var1.error(6, new Object[]{var3});
- }
-
- }
-
- public void execute(XSLTEngineImpl var1, Node var2, Node var3, QName var4) throws XSLProcessorException, MalformedURLException, FileNotFoundException, IOException, SAXException {
- XMLParserLiaison var5 = var1.getXMLProcessorLiaison();
- String var6 = this.m_name_avt.evaluate(var5, var3, this, new StringBuffer());
- int var7 = var6.indexOf(58);
- String var8 = "";
- if (var7 >= 0) {
- String var9 = var6.substring(0, var7);
-
- try {
- var8 = ((ElemTemplateElement)this).getNamespaceForPrefix(var9);
- if (var7 + 1 == var6.length() || !((ElemTemplateElement)this).isValidNCName(var6.substring(var7 + 1))) {
- var1.warn(24, new Object[]{var6});
- var6 = null;
- }
- } catch (Exception var12) {
- var8 = null;
- var1.warn(22, new Object[]{var9});
- }
- } else if (var6.length() == 0 || !((ElemTemplateElement)this).isValidNCName(var6)) {
- var1.warn(24, new Object[]{var6});
- var6 = null;
- }
-
- if (var6 != null && var8 != null) {
- if (this.m_namespace_avt != null) {
- String var13 = this.m_namespace_avt.evaluate(var5, var3, this, new StringBuffer());
- if (var13 != null && var13.length() > 0) {
- if (this.m_prefix == null) {
- String var10 = var1.getResultPrefixForNamespace(var13);
- if (var10 == null) {
- var10 = "ns" + String.valueOf(var1.m_uniqueNSValue);
- ++var1.m_uniqueNSValue;
- String var11 = "xmlns:" + var10;
- var1.addResultAttribute(var1.m_pendingAttributes, var11, var13);
- }
-
- this.m_prefix = var10;
- }
-
- if (var7 >= 0) {
- var6 = var6.substring(var7 + 1);
- }
-
- var6 = this.m_prefix + ":" + var6;
- }
- }
-
- var1.m_resultTreeHandler.startElement(var6);
- }
-
- super.execute(var1, var2, var3, var4);
- ((ElemTemplateElement)this).processResultNS(var1);
- ((ElemTemplateElement)this).executeChildren(var1, var2, var3, var4);
- if (var6 != null && var8 != null) {
- var1.m_resultTreeHandler.endElement(var6);
- }
-
- }
- }
-